CSS Grid ãã©ãã¯ãµã€ãžã³ã°ããã¹ã¿ãŒããŠã¡ã¢ãªäœ¿çšéãšã¬ã€ã¢ãŠãèšç®ãæé©åããã°ããŒãã«ãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãä¿èšŒããŸãã
CSS Grid ãã©ãã¯ãµã€ãžã³ã°ã®ã¡ã¢ãªæé©åïŒã¬ã€ã¢ãŠãèšç®ã®å¹çå
ãŠã§ãéçºãçµ¶ããé²åããäžã§ãããã©ãŒãã³ã¹ã¯äžçäžã®éçºè ã«ãšã£ãŠäŸç¶ãšããŠæéèŠäºé ã§ããã¢ããªã±ãŒã·ã§ã³ãè€éåããã·ãŒã ã¬ã¹ã§ã¬ã¹ãã³ã·ããªäœéšã«å¯ŸãããŠãŒã¶ãŒã®æåŸ ãé«ãŸãã«ã€ããŠãããã³ããšã³ãã³ãŒãã®ããããåŽé¢ãæé©åããããšãäžå¯æ¬ ã«ãªããŸããCSS Grid Layoutã¯ãè€éã§æè»ãªã°ãªããããŒã¹ã®ã¬ã€ã¢ãŠããäœæããããã®åŒ·åãªããŒã«ã§ãããèšãç¥ããªããã¶ã€ã³ã®å¯èœæ§ãæäŸããŸãããããããããã匷åãªãã¯ãããžãŒãšåæ§ã«ããã®å¹æçãªå®è£ ã¯ã¡ã¢ãªäœ¿çšéãšã¬ã€ã¢ãŠãèšç®ã®å¹çã«å€§ãã圱é¿ããå¯èœæ§ããããŸãããã®è©³çްãªã¬ã€ãã§ã¯ãCSS Gridãã©ãã¯ãµã€ãžã³ã°ã®è€éããæ¢ããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹å šäœã§ãçŸããããã©ãŒãã³ã¹ã®é«ãã¬ã€ã¢ãŠãã確ä¿ããããã®ãã¡ã¢ãªæé©åã®å®è¡å¯èœãªæŠç¥ãæäŸããŸãã
CSS Grid ãã©ãã¯ãµã€ãžã³ã°ã®çè§£
CSS Grid Layoutã¯ãã°ãªããã³ã³ãããšãã®çŽæ¥ã®åèŠçŽ ã§ããã°ãªããã¢ã€ãã ã®æŠå¿µã«åºã¥ããŠåäœããŸããã°ãªããèªäœã¯ãã°ãªããç·éã®ã¹ããŒã¹ã§ãããã©ãã¯ã«ãã£ãŠå®çŸ©ãããŸãããããã®ãã©ãã¯ã¯è¡ãŸãã¯åã«ãªããŸãããããã®ãã©ãã¯ã®ãµã€ãžã³ã°ã¯ãã°ãªãããã©ã®ããã«é©å¿ããã¬ã³ããªã³ã°ããããã®åºæ¬ã§ãããã©ãã¯ãµã€ãžã³ã°ã«é¢ããäž»èŠãªåäœãšããŒã¯ãŒãã«ã¯ä»¥äžãå«ãŸããŸãã
- åºå®åäœïŒãã¯ã»ã«ïŒpxïŒãemãremããããã¯æ£ç¢ºãªå¶åŸ¡ãæäŸããŸãããã¬ã¹ãã³ã·ããã¶ã€ã³ã«ãããŠã¯æè»æ§ã«æ¬ ããå ŽåããããŸãã
- ããŒã»ã³ããŒãžåäœïŒ%ïŒïŒã°ãªããã³ã³ããã®ãµã€ãºã«å¯Ÿããçžå¯Ÿå€ãæ¯äŸãµã€ãžã³ã°ã«åœ¹ç«ã¡ãŸãã
- ãã¬ãã¯ã¹åäœïŒfrïŒïŒãåæ°åäœãã¯Gridã®ã³ã¢ã³ã³ããŒãã³ãã§ããã°ãªããã³ã³ããå ã®å©çšå¯èœãªã¹ããŒã¹ã®åæ°ã瀺ããŸããããã¯ãæµåçã§ã¬ã¹ãã³ã·ããªã¬ã€ã¢ãŠããäœæããäžã§ç¹ã«åŒ·åã§ãã
- ããŒã¯ãŒãïŒ
autoãmin-contentãmax-contentããããã®ããŒã¯ãŒãã¯ãã°ãªããã¢ã€ãã å ã®ã³ã³ãã³ãã«åºã¥ããŠã€ã³ããªãžã§ã³ããªãµã€ãžã³ã°ãæäŸããŸãã
ã¬ã€ã¢ãŠãèšç®ã«ãããfråäœã®åœ¹å²
fråäœã¯ãå¹ççã§åçãªGridã¬ã€ã¢ãŠãã®åºç€ã§ããfråäœã䜿çšããŠãã©ãã¯ãå®çŸ©ãããšããã©ãŠã¶ã¯å©çšå¯èœãªã¹ããŒã¹ãã€ã³ããªãžã§ã³ãã«åæ£ããŸããããšãã°ãgrid-template-columns: 1fr 2fr 1fr;ã¯ãå©çšå¯èœãªã¹ããŒã¹ã4ã€ã®çããéšåã«åå²ãããããšãæå³ããŸããæåã®ãã©ãã¯ã¯1éšã2çªç®ã®ãã©ãã¯ã¯2éšã3çªç®ã®ãã©ãã¯ã¯1éšãåããŸãããã®èšç®ã¯ãã³ã³ããã®ãµã€ãºã«åºã¥ããŠåçã«è¡ãããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒfråäœã¯ã¹ããŒã¹ã忣ããäžã§æ¬è³ªçã«å¹ççã§ãããç¹ã«ã¬ã¹ãã³ã·ãã¡ãã£ã¢ã¯ãšãªå
ã§ãã¹ããããããä»ã®ãµã€ãžã³ã°åäœãšçµã¿åãããããããå Žåã®fråäœã®è€éãªçµã¿åããã¯ããã©ãŠã¶ã®ã¬ã€ã¢ãŠããšã³ãžã³ã®èšç®ãªãŒããŒããããå¢å ãããå¯èœæ§ããããŸãããšã³ãžã³ã¯ãåèšãåæ°ããŒã«ããèšç®ããŠãã忣ããå¿
èŠããããŸãã倿°ã®fråäœãæã€éåžžã«è€éãªã°ãªããã§ã倿°ã®ãã©ãã¯ã«ãŸãããå Žåãããã¯ã¬ã€ã¢ãŠãèšç®æéã®èŠå ãšãªãå¯èœæ§ããããŸãã
autoãmin-contentãmax-contentã®æŽ»çš
ãããã®ããŒã¯ãŒãã¯ã匷åãªã³ã³ãã³ãèªèåãµã€ãžã³ã°ãæäŸããæåèšç®ãé床ã«åçŽãªåºå®ãµã€ãžã³ã°ã®å¿ èŠæ§ãæžãããŸãã
autoïŒãã©ãã¯ãµã€ãºã¯ãã°ãªããã¢ã€ãã å ã®ã³ã³ãã³ãã®ãµã€ãºã«ãã£ãŠæ±ºå®ãããŸããã³ã³ãã³ããåãŸããªãå ŽåããªãŒããŒãããŒããŸããmin-contentïŒãã©ãã¯ã¯ããã®æå°ã®å¯èœãªå åšãµã€ãºã«ãµã€ãºèšå®ãããŸããããã¯éåžžãã³ã³ãã³ãå ã®æå°ã®å£ããªãèŠçŽ ã®ãµã€ãºã§ããmax-contentïŒãã©ãã¯ã¯ããã®æå€§ã®å¯èœãªå åšãµã€ãºã«ãµã€ãºèšå®ãããŸããããã¯éåžžãæãé·ãå£ããªãåèªãŸãã¯èŠçŽ ã®å¹ ã§ãã
ã¡ã¢ãªãžã®åœ±é¿ïŒãããã®ããŒã¯ãŒãã䜿çšãããšããã©ãŠã¶ã¯ãã©ãã¯ãµã€ãºã決å®ããããã«ã°ãªããã¢ã€ãã ã®ã³ã³ãã³ããæ€æ»ããã ãã§æžããããéåžžã«å¹ççã«ãªãå¯èœæ§ããããŸããããããã°ãªããã¢ã€ãã ã«éåžžã«å€§éã®ã³ã³ãã³ããéåžžã«å¹
ã®åºãå£ããªãèŠçŽ ãå«ãŸããŠããå Žåãmax-contentãµã€ãºãèšç®ããããšã¯èšç®éçŽçã«ãªãå¯èœæ§ããããŸããåæ§ã«ãæ·±ããã¹ããããèŠçŽ ã®å Žåãmin-contentãæ±ºå®ããããšãããªãã®è§£æãå¿
èŠãšããå ŽåããããŸããéèŠãªã®ã¯ãããã©ã«ããšããŠã§ã¯ãªããã³ã³ãã³ãããµã€ãžã³ã°ã決å®ããç®æã§è³¢æã«äœ¿çšããããšã§ãã
Grid ãã©ãã¯ãµã€ãžã³ã°ã®ã¡ã¢ãªæé©åæŠç¥
CSS Gridãã©ãã¯ãµã€ãžã³ã°ã«ãããã¡ã¢ãªäœ¿çšéãšã¬ã€ã¢ãŠãèšç®å¹çã®æé©åã¯ãææ ®æ·±ãCSSäœæããã©ãŠã¶ã¬ã³ããªã³ã°ã®çè§£ãããã³ãã¹ããã©ã¯ãã£ã¹ã®æ¡çšãçµã¿åãããŠè¡ããŸãã以äžã«ããã€ãã®æŠç¥ã瀺ããŸãã
1. ã·ã³ãã«ãã远æ±ããé床ã®è€éåãé¿ãã
æé©åã®ããã®æãçŽæ¥çãªã¢ãããŒãã¯ãã°ãªããå®çŸ©ãå¯èœãªéãã·ã³ãã«ã«ä¿ã€ããšã§ããã°ãªããã®è€éãªãã¹ããéåžžã«å€§ããªã°ãªããã§ã®fråäœã®éå°ãªäœ¿çšããŸãã¯ããŸããŸãªãµã€ãžã³ã°åäœã®è€éãªçµã¿åããã¯ãèšç®è² è·ãå¢å ãããå¯èœæ§ããããŸãã
- ãã¹ããããã°ãªãããå¶éããïŒGridã¯ãã¹ãã«åŒ·åã§ãããæ·±ããã¹ãã¯é£éçãªèšç®ã«ã€ãªããå¯èœæ§ããããŸããã¬ã€ã¢ãŠããé床ã«è€éã«ãªã£ãå Žåã¯ã代æ¿ã¢ãããŒããæ€èšããŠãã ããã
fråäœã®åççãªäœ¿çšïŒå žåçãªã¬ã¹ãã³ã·ãã¬ã€ã¢ãŠãã§ã¯ãå°æ°ã®fråäœã§ååã§ããå¿ èŠããªãéããæ°åã®fråäœãæã€ã°ãªãããå®çŸ©ããããšã¯é¿ããŠãã ããã- å¯èœãªå Žåã¯ãåºå®åäœããã
autoãŸãã¯frãåªå ããïŒã³ã³ãã³ããŸãã¯ç»é¢ãµã€ãºã«é©åããå¿ èŠãããèŠçŽ ã®å ŽåãautoãŸãã¯fråäœã¯ãåžžã«åèšç®ãå¿ èŠã«ãªãå¯èœæ§ã®ããåºå®ãã¯ã»ã«å€ãããäžè¬çã«å¹ççã§ãã
ã°ããŒãã«ãªäŸïŒäžçäžã®äœçŸäžäººãã®ãŠãŒã¶ãŒã䜿çšããEã³ããŒã¹è£œåãªã¹ãããŒãžãæ³åããŠãã ããã補åã«ãŒãã®ã·ã³ãã«ãªã°ãªããïŒäŸïŒgrid-template-columns: repeat(auto-fit, minmax(250px, 1fr));ïŒã¯ããã©ãŠã¶ãå補åã«ãŒãã®è€éãªãã¢ã€ãã ããšã®èšç®ãå®è¡ããå¿
èŠãªããããŸããŸãªç»é¢ãµã€ãºãå¹ççã«åŠçããŸãããã®åäžã®ããšã¬ã¬ã³ããªã«ãŒã«ã¯ã倿§ãªããã€ã¹ã®æ°ãåããªãã»ã©ã®ãŠãŒã¶ãŒã®ããã«ã¬ã³ããªã³ã°ãæé©åããŸãã
2. `repeat()`ãš`minmax()`ã®æŠç¥çãªäœ¿çš
repeat()颿°ã¯ãäžè²«ãããã©ãã¯ãã¿ãŒã³ãäœæããããã«äžå¯æ¬ ã§ãããminmax()ã¯å®çŸ©ãããå¢çå
ã§æè»ãªãã©ãã¯ãµã€ãžã³ã°ãå¯èœã«ããŸãããããã®çµã¿åãããåã¯ãéåžžã«å¹ççã§ã¬ã¹ãã³ã·ããªã¬ã€ã¢ãŠãã«ã€ãªããå¯èœæ§ããããŸãã
- `repeat(auto-fit, minmax(min, max))`ïŒããã¯ã¬ã¹ãã³ã·ãã°ãªããã®åªãããã¿ãŒã³ã§ãããã©ãŠã¶ã«ãã³ã³ããå
ã«åãŸãã ãå€ãã®ãã©ãã¯ãäœæããããã«æç€ºããåãã©ãã¯ã¯æå°ãµã€ãºïŒ
minïŒãšæå€§ãµã€ãºïŒmaxïŒãæã¡ãŸããæå€§å€ãšããŠã®fråäœã¯ãæ®ãã®ã¹ããŒã¹ãåçã«åæ£ããããã«ãã䜿çšãããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒå€ãã®åãæç€ºçã«å®çŸ©ãã代ããã«ãrepeat()ã䜿çšãããšããã©ãŠã¶ãé©åãããã©ãã¯ã®æ°ãèšç®ãããšããéåŽåãè¡ããŸããrepeat()å
ã®minmax()ã¯ãããããã«æŽç·Žãããã©ãã¯ã劥åœãªå¶éå
ã§æé·ãŸãã¯çž®å°ããããšãä¿èšŒããŸããããã«ããããã©ãŠã¶ã管çããå¿
èŠã®ããæç€ºçãªãã©ãã¯å®çŸ©ã®æ°ãåçã«æžããã¡ã¢ãªãšèšç®ã®ç¯çŽã«ã€ãªãããŸãããã©ãŠã¶ã¯ãåãã©ãã¯ãåå¥ã«èšç®ããã®ã§ã¯ãªããå©çšå¯èœãªã¹ããŒã¹ããšã«ç¹°ãè¿ããã©ãã¯ã®æ°ãäžåºŠèšç®ããã ãã§æžã¿ãŸãã
ã°ããŒãã«ãªäŸïŒããŸããŸãªå°åã«èšäºã衚瀺ãããã¥ãŒã¹ãŠã§ããµã€ãã®ããŒã ããŒãžãgrid-template-columns: repeat(auto-fit, minmax(300px, 1fr));ã䜿çšãããšã倧ããªç»é¢ã§ã¯èšäºãè€æ°ã®åã«è¡šç€ºãããŠå¹
å
šäœãåããå°ããªã¢ãã€ã«ç»é¢ã§ã¯åäžã®åã«ã¹ã¿ãã¯ãããããã«ãªããŸãããã®åäžã®CSSã«ãŒã«ã¯ãããŸããŸãªè§£å床ãšã¢ã¹ãã¯ãæ¯ã«ã·ãŒã ã¬ã¹ã«é©å¿ããæç€ºçãªåå®çŸ©ãæå°éã«æããããšã§ããã©ãŒãã³ã¹ãæé©åããŸãã
3. `min-content`ãš`max-content`ã«ããã³ã³ãã³ãèªèåãµã€ãžã³ã°
ã¬ã€ã¢ãŠããã³ã³ãã³ãã®åºæãµã€ãºã«çã«é©åããå¿
èŠãããå Žåãmin-contentãšmax-contentã¯éåžžã«åœ¹ç«ã¡ãŸãããã ãããããã®èšç®ã³ã¹ããèæ
®ããå¿
èŠããããŸãã
- åçã³ã³ãã³ãã«éå®ããŠäœ¿çšããïŒè£œåã¿ã€ãã«ã説æãªã©ãç¹å®ã®èŠçŽ ã®é·ããéåžžã«å€åããåã®å¹ ãæ±ºå®ããå¿ èŠãããå Žåããããã®ããŒã¯ãŒãã¯é©åã§ãã
- å€§èŠæš¡ã§éçãªã°ãªããã§ã®äœ¿çšã¯é¿ããïŒåçãªå¹
調æŽãå¿
èŠãšããªãæ°çŸã®ã¢ã€ãã ãæã€ã°ãªããã«
max-contentãé©çšãããšãããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ãªãå¯èœæ§ããããŸãããã©ãŠã¶ã¯ããã¹ãŠã®ã¢ã€ãã ã®ã³ã³ãã³ããåæããå¿ èŠããããŸãã autoãŸãã¯frãšã®çµã¿åããã§ãã©ã³ã¹ãåãïŒããããä»ã®åäœãšçµã¿åãããŠãããå¶åŸ¡ãããåäœãäœæã§ããŸããããšãã°ãminmax(min-content, 1fr)ã䜿çšãããšããã©ãã¯ã¯åºæã®æå°ãµã€ãºãŸã§çž®å°ã§ããŸãããå©çšå¯èœãªã¹ããŒã¹ãåãããŸã§æ¡åŒµã§ããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒãã©ãŠã¶ã¯ãã³ã³ãã³ãã®åºæãµã€ãºã決å®ããããã«èšç®ãå®è¡ããå¿ èŠããããŸãããã®ã³ã³ãã³ããè€éãŸãã¯éåžžã«å€§ããå Žåãèšç®ã«æéããããå¯èœæ§ããããŸãããã ãããã®å©ç¹ã¯ãã³ã³ãã³ãã®ãªãŒããŒãããŒãäžèŠãªç©ºçœãåé¿ãããããå ç¢ã§çã«ã¬ã¹ãã³ã·ããªã¬ã€ã¢ãŠãã§ããããšããããããŸãã
ã°ããŒãã«ãªäŸïŒå€èšèªèŸæžãŠã§ããµã€ããå®çŸ©åããæ¹è¡ãªãã§éåžžã«é·ã翻蚳ãããåèªããã¬ãŒãºãå容ããå¿
èŠãããå Žåããã®ç¹å®ã®ãã©ãã¯ã§max-contentã䜿çšãããšéåžžã«å¹æçã§ãããã©ãŠã¶ã¯ãæãé·ãåèªã«ãã£ãŠå¿
èŠãšãããæå€§å¹
ãèšç®ããã¬ã€ã¢ãŠããç¶æãããã©ã®èšèªã®ãŠãŒã¶ãŒã«ãšã£ãŠãèªã¿ãããããšãä¿èšŒããŸããããã«ãããåºå®å¹
ã®åã§ã¯çºçããå¯èœæ§ã®ããåãæšãŠãåä»ãªæãè¿ããåé¿ãããŸãã
4. `fit-content()`ã«ãã`auto`ãµã€ãžã³ã°
fit-content()颿°ã¯ãautoãšmax-contentã®éã®åХ忡ãæäŸããŸããããã¯ãå©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠãã©ãã¯ããµã€ãºèšå®ããŸããã颿°ã®åŒæ°ã§æå®ãããæå€§å¶éããããŸãã
- `fit-content(limit)`ïŒãã©ãã¯ã¯
minmax(auto, limit)ã«åŸã£ãŠãµã€ãºèšå®ãããŸããããã¯ãã³ã³ãã³ãïŒautoïŒãšåããããã®å¹ ã«ãªããŸãããæå®ãããlimitããåºãã¯ãªããŸããã
ã¡ã¢ãªãžã®åœ±é¿ïŒfit-content()ã¯max-contentãããå¹ççã§ããå¯èœæ§ããããŸããããã¯ããã©ãŠã¶ãã³ã³ãã³ãã®çµ¶å¯Ÿæå€§ããã³ã·ã£ã«ãµã€ãºãåæããå¿
èŠããªããªãå¢çç·å¶éãå°å
¥ããããã§ããããäºæž¬å¯èœã§ãå€ãã®å Žåãããé«éãªèšç®ã§ãã
ã°ããŒãã«ãªäŸïŒããŸããŸãªããŒã¿ãã€ã³ãã衚瀺ããããŒãã«ã§ãäžéšã®åã¯ã³ã³ãã³ãã«ååãªå¹
ãå¿
èŠã§ãããã¬ã€ã¢ãŠããæ¯é
ãã¹ãã§ã¯ãããŸãããåã«fit-content(200px)ã䜿çšãããšãã³ã³ãã³ãã«åãããŠæå€§200pxãŸã§å±éããããã以äžã¯æé·ããã倧ããªç»é¢ã§é床ã«å¹
ã®åºãåãé²ããåœéçãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹å
šäœã§ãã©ã³ã¹ã®åããããŒã¿ãã¬ãŒã³ããŒã·ã§ã³ãä¿èšŒããŸãã
5. æç€ºçã«ãµã€ãºèšå®ããããã©ãã¯ã®ããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé
Gridã¯åŒ·åãªåçãµã€ãžã³ã°ãæäŸããŸãããæç€ºçã«ãã©ãã¯ãµã€ãºãå®çŸ©ããå¿ èŠãããå ŽåããããŸããããããããã¯ããã©ãŒãã³ã¹ãèæ ®ããŠè¡ãå¿ èŠããããŸãã
- åºå®åäœã®æå°åïŒåºå®ãã¯ã»ã«åäœã®éå°ãªäœ¿çšã¯ãç¹ã«ãã¥ãŒããŒããµã€ãºã倿Žããããšãã«ãåèšç®ãªãã§ã¯ããŸãé©å¿ããªãã¬ã€ã¢ãŠãã«ã€ãªããå¯èœæ§ããããŸãã
- `calc()`ã®è³¢æãªäœ¿çšïŒ
calc()ã¯è€éãªèšç®ã«åŒ·åã§ããããã©ãã¯ãµã€ãžã³ã°å ã®é床ã«ãã¹ããããããŸãã¯è€éãªcalc()颿°ã¯ãåŠçãªãŒããŒããããå¢å ãããå¯èœæ§ããããŸãã - çžå¯Ÿåäœã®åªå
ïŒå¯èœãªå Žåã¯ãã³ã³ããã®å¯žæ³ãšç»é¢ãµã€ãºã«æ¬è³ªçã«çµã³ã€ããŠããããŒã»ã³ããŒãžããã¥ãŒããŒãåäœïŒ
vwãvhïŒãªã©ã®çžå¯Ÿåäœã䜿çšããŠãã ããã
ã¡ã¢ãªãžã®åœ±é¿ïŒãã©ãŠã¶ãåºå®åäœãŸãã¯è€éãªèšç®ãæ€åºãããšãç¹ã«ãªãµã€ãºã€ãã³ãäžãã³ã³ãã³ãã倿Žããããšãã«ãã¬ã€ã¢ãŠããããé »ç¹ã«åè©äŸ¡ããå¿ èŠãããå ŽåããããŸããçžå¯Ÿåäœã¯ãé©åã«äœ¿çšããããšãã¬ã€ã¢ãŠãèšç®ã®èªç¶ãªãããŒã«é©åããŸãã
6. `grid-auto-rows`ãš`grid-auto-columns`ã®åœ±é¿
ãããã®ããããã£ã¯ãæé»çã«äœæãããã°ãªãããã©ãã¯ïŒgrid-template-rowsãŸãã¯grid-template-columnsã§æç€ºçã«å®çŸ©ãããŠããªãè¡ãŸãã¯åïŒã®ãµã€ãžã³ã°ãå®çŸ©ããŸãã
- ããã©ã«ãã®`auto`ãµã€ãžã³ã°ïŒããã©ã«ãã§ã¯ãæé»çã«äœæããããã©ãã¯ã¯
autoã䜿çšããŠãµã€ãºèšå®ãããŸããããã¯ã³ã³ãã³ããå°éãããããäžè¬çã«å¹ççã§ãã - äžè²«æ§ã®ããã®æç€ºçãªèšå®ïŒãã¹ãŠã®æé»çã«äœæããããã©ãã¯ã«äžè²«ãããµã€ãºïŒäŸïŒãã¹ãŠ100pxã®é«ãïŒãå¿
èŠãªå Žåã¯ã
grid-auto-rows: 100px;ãèšå®ã§ããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒgrid-auto-rowsãŸãã¯grid-auto-columnsã«æç€ºçãªãµã€ãºãèšå®ããããšã¯ãããããããã©ã«ãã§autoã«ãªããããããã©ãŒãã³ã¹ãé«ãå Žåãå€ãã§ããããã¯ãå¿
èŠãªãµã€ãºãããã£ãŠãããå€ãã®æé»çã«äœæããããã©ãã¯å
šäœã§äžè²«ããŠããå Žåã§ãããã©ãŠã¶ã¯ãæ°ããäœæãããåãã©ãã¯ã®ã³ã³ãã³ããæ€æ»ããããšãªãããã®äºåå®çŸ©ããããµã€ãºãé©çšã§ããŸããããããã³ã³ãã³ããæ¬åœã«å€åããautoã§ååãªå Žåã¯ãããã«é Œãããšã§ãäžèŠãªåºå®ãµã€ãžã³ã°ã鲿¢ããããã·ã³ãã«ã«ãªãå¯èœæ§ããããŸãã
ã°ããŒãã«ãªäŸïŒããŸããŸãªãŠã£ãžã§ããã衚瀺ããããã·ã¥ããŒãã¢ããªã±ãŒã·ã§ã³ã§ã¯ãåãŠã£ãžã§ãããèªã¿ãããã確ä¿ããããã«æå°ã®é«ããå¿
èŠãšããå Žåãgrid-auto-rows: 150px;ãèšå®ãããšããã¹ãŠã®æé»çã«äœæãããè¡ãäžè²«ããŠäœ¿çšå¯èœãªé«ããç¶æããè¡ãå°ãããªããããã®ãé²ããäžçäžã®ããŸããŸãªããã·ã¥ããŒãå
šäœã§å
šäœçãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã
7. ã¡ãã£ã¢ã¯ãšãªãšã¬ã¹ãã³ã·ããã©ãã¯ãµã€ãžã³ã°
ã¡ãã£ã¢ã¯ãšãªã¯ã¬ã¹ãã³ã·ããã¶ã€ã³ã®åºæ¬ã§ããã¡ãã£ã¢ã¯ãšãªå ã§ã°ãªãããã©ãã¯ãµã€ãžã³ã°ãã©ã®ããã«æ§é åãããã¯ãããã©ãŒãã³ã¹ã«å€§ãã圱é¿ããŸãã
- ãã¬ãŒã¯ãã€ã³ãã®æé©åïŒä»»æã®ç»é¢ãµã€ãºã§ã¯ãªããã¬ã€ã¢ãŠãã®ããŒãºãçã«åæ ãããã¬ãŒã¯ãã€ã³ããéžæããŠãã ããã
- ããŸããŸãªãã¬ãŒã¯ãã€ã³ãã§ã®ãã©ãã¯å®çŸ©ã®åçŽåïŒãã¹ãŠã®ã¡ãã£ã¢ã¯ãšãªã§è€éãªã°ãªããæ§é ãåçã«å€æŽããããšã¯é¿ããŠãã ãããæ®µéçãªå€æŽãç®æããŠãã ããã
- `repeat()`å ã®`auto-fit`ãš`auto-fill`ã®æŽ»çšïŒãããã¯ãåãã¬ãŒã¯ãã€ã³ãã§`grid-template-columns`ãæåã§å€æŽãããããããã°ãã°å¹ççã§ãã
ã¡ã¢ãªãžã®åœ±é¿ïŒã¡ãã£ã¢ã¯ãšãªãããªã¬ãŒããããšããã©ãŠã¶ã¯ã¬ã€ã¢ãŠãããããã£ãå«ãã¹ã¿ã€ã«ãåè©äŸ¡ããå¿
èŠããããŸããã°ãªããå®çŸ©ãé床ã«è€éã§ãã£ãããåãã¬ãŒã¯ãã€ã³ãã§åçã«å€åããããããšããã®åè©äŸ¡ã¯ã³ã¹ãããããå¯èœæ§ããããŸããrepeat()ãšminmax()ã§éæã§ãããããã·ã³ãã«ã§æ®µéçãªå€æŽã¯ãããé«éãªåèšç®ã«ã€ãªãããŸãã
ã°ããŒãã«ãªäŸïŒäžççãªã«ã³ãã¡ã¬ã³ã¹ãŠã§ããµã€ãã®ã¹ã±ãžã¥ãŒã«ããŒãžãã¬ã€ã¢ãŠãã¯ã倧ããªãã¹ã¯ãããã§ã®ãã«ãã«ã©ã 衚瀺ãããã¢ãã€ã«ãã©ã³ã§ã®åäžã®ã¹ã¯ããŒã«å¯èœãªã«ã©ã ãžãšé©å¿ããå¿
èŠããããŸããåãµã€ãºã«å¯ŸããŠæç€ºçãªåãå®çŸ©ãã代ããã«ãã¡ãã£ã¢ã¯ãšãªå
ã®grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));ã¯ãã¹ããŒã·ã³ã°ããã©ã³ããµã€ãºã調æŽããããšã§ãåçã«ç°ãªãã°ãªããå®çŸ©ãå¿
èŠãšããã«ãšã¬ã¬ã³ãã«ç§»è¡ãåŠçã§ããŸããããã«ããããŠãŒã¶ãŒãã¹ã±ãžã¥ãŒã«ã«ã¢ã¯ã»ã¹ãããã¹ãŠã®ããã€ã¹ã§ããã©ãŒãã³ã¹ã確ä¿ãããŸãã
8. ããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°ãšãããã°ããŒã«
ããã©ãŒãã³ã¹ãçã«çè§£ããæé©åããããã®æè¯ã®æ¹æ³ã¯æž¬å®ããããšã§ãã
- ãã©ãŠã¶éçºè
ããŒã«ïŒChrome DevToolsãFirefox Developer Editionãªã©ã«ã¯ãåªããããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°ããŒã«ããããŸãã以äžã«æ³šç®ããŠãã ããïŒ
- ã¬ã€ã¢ãŠã/ãªãããŒã¿ã€ãã³ã°ïŒã©ã®CSSããããã£ãã¬ã€ã¢ãŠãã®åèšç®ãåŒãèµ·ãããŠããããç¹å®ããŸãã
- ã¡ã¢ãªã¹ãããã·ã§ããïŒã¡ã¢ãªäœ¿çšéãæéãšãšãã«è¿œè·¡ããŠããªãŒã¯ãäºæããªãå¢å ãæ€åºããŸãã
- ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ïŒãã©ãŠã¶ãã°ãªããã¬ã€ã¢ãŠããã¬ã³ããªã³ã°ããã³æŽæ°ã§ããé床ã芳å¯ããŸãã
- `content-visibility`ãš`contain`ããããã£ã䜿çšããïŒCSS Gridãã©ãã¯ãµã€ãžã³ã°ã«çŽæ¥é¢ä¿ãããŸãããããããã®CSSããããã£ã¯ããã©ãŠã¶ã«ç»é¢å€ã®ã³ã³ãã³ãã®ã¬ã³ããªã³ã°ãã¹ãããããããã«æç€ºããããã¬ã€ã¢ãŠãã®å€æŽãç¹å®ã®èŠçŽ å ã«å°ã蟌ãããããããšã§ãåèšç®ã®ç¯å²ãæžããããšã§ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒãããã¡ã€ãªã³ã°ã¯ãCSS Gridã®å®è£ ã§éå°ãªã¡ã¢ãªãæ¶è²»ããããé ãã¬ã€ã¢ãŠãèšç®ã«ã€ãªãã£ããããç¹å®ã®é åãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãããããã®ç¹å®ã®åé¡ã«å¯ŸåŠããããšã¯ãäžè¬çãªæé©åãé©çšãããããã¯ããã«å¹æçã§ãã
ã°ããŒãã«ãªäŸïŒããŸããŸãªåœã®ãã£ãŒã«ããšãŒãžã§ã³ãã䜿çšãããå€§èŠæš¡ã§ã€ã³ã¿ã©ã¯ãã£ããªãããã¢ããªã±ãŒã·ã§ã³ãéçºè
ã¯ããã©ãŠã¶éçºè
ããŒã«ã®ããã©ãŒãã³ã¹ã¿ãã䜿çšããŠãæ
å ±ãããã¢ããã®è€éãªã°ãªããæ§é ã倧å¹
ãªãªãããŒãåŒãèµ·ãããŠããããšãç¹å®ããå ŽåããããŸãããããã¡ã€ãªã³ã°ããããšã«ããããã¯ã»ã«åäœã®åºå®å€ã§ã¯ãªãfråäœã䜿çšããminmax()ããããã¢ããã³ã³ãã³ãé åã«äœ¿çšãããšã倿°ã®ãããã¢ãããåæã«ã¢ã¯ãã£ãã«ãªã£ãŠãããšãã®ã¬ã€ã¢ãŠãèšç®æéãšã¡ã¢ãªæ¶è²»éãåçã«åæžãããããšãããããŸãã
é«åºŠãªãã¯ããã¯ãšèæ ®äºé
1. ã°ãªããã¢ã€ãã 察ã°ãªããã³ã³ããã®ãµã€ãžã³ã°
ã°ãªããã³ã³ããã®ãµã€ãžã³ã°ãšåã
ã®ã°ãªããã¢ã€ãã ã®ãµã€ãžã³ã°ãåºå¥ããããšã¯éèŠã§ãããã©ãã¯ãµã€ãžã³ã°ã®æé©åã¯ãäž»ã«ã³ã³ããã®grid-template-columnsãgrid-template-rowsãgrid-auto-columnsãããã³grid-auto-rowsããããã£ãæããŸãããã ããã°ãªããã¢ã€ãã ã®widthãheightãmin-widthãmax-widthãmin-heightãmax-heightããããã£ã圹å²ãæãããautoããã³max-contentãã©ãã¯ãµã€ãºã®èšç®ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒã°ãªããã¢ã€ãã ã«ãã³ã³ãã³ãã®max-contentãµã€ãºãããå°ããæç€ºçã«èšå®ãããmax-widthãããå Žåããã©ãŠã¶ã¯ãã®max-widthãå°éããŸããããã«ãããå¶éãæ©æã«éããå Žåãèšç®ã³ã¹ãã®ãããmax-contentèšç®ã鲿¢ãããããšããããŸããéã«ãã°ãªããã¢ã€ãã ã®äžèŠã«å€§ããªmin-widthã¯ããã©ãã¯ãå¿
èŠä»¥äžã«å€§ãã匷å¶ããå
šäœçãªã¬ã€ã¢ãŠãå¹çã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
2. `subgrid`ããããã£ãšãã®ããã©ãŒãã³ã¹ãžã®åœ±é¿
ãŸã æ¯èŒçæ°ããããã©ãŠã¶ã®ãµããŒããæ§ã
ã§ãããsubgridã䜿çšãããšãã°ãªããã¢ã€ãã ã¯èŠªã°ãªãããããã©ãã¯ãµã€ãžã³ã°ãç¶æ¿ã§ããŸããããã«ãããè€éãªãã¹ããç°¡çŽ åãããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒsubgridã¯ããã¹ããããã°ãªããå
ã§ã®åé·ãªãã©ãã¯å®çŸ©ã®å¿
èŠæ§ãæžããå¯èœæ§ããããŸããç¶æ¿ããããšã«ããããã©ãŠã¶ã¯ãµãã°ãªããã®ç¬ç«ããèšç®ãå°ãªãå®è¡ããå¯èœæ§ããããŸãããã ããsubgridèªäœã®åºç€ãšãªãã¡ã«ããºã ã¯ç¬èªã®èšç®ã»ããã䌎ãå¯èœæ§ãããããããã®ããã©ãŒãã³ã¹äžã®å©ç¹ã¯ã³ã³ããã¹ãã«äŸåãããããã¡ã€ãªã³ã°ãããã¹ãã§ãã
ã°ããŒãã«ãªäŸïŒå€ãã®ã¢ããªã±ãŒã·ã§ã³ã§è€éãªããŒã¿ããŒãã«ã䜿çšãããå¯èœæ§ã®ãããã¶ã€ã³ã·ã¹ãã ã³ã³ããŒãã³ãã©ã€ãã©ãªãããŒãã«ã«ã¡ã€ã³ããŒãã«ã®åãšå®å
šã«æŽåããå¿
èŠããããã¹ããããèŠçŽ ãããå Žåããããã®ãã¹ããããèŠçŽ ã§subgridã䜿çšãããšãããŒãã«ã®åæ§é ãç¶æ¿ã§ããŸããããã«ãããCSSãç°¡çŽ åããããã©ãŠã¶ãåãã¹ããããã³ã³ããŒãã³ãã®åãµã€ãºããŒãããåèšç®ããå¿
èŠããªããªããããã¬ã€ã¢ãŠãèšç®ãããå¹ççã«ãªãå¯èœæ§ããããŸãã
3. ãã©ãŠã¶ã¬ã³ããªã³ã°ãšã³ãžã³ãšããã©ãŒãã³ã¹
ããŸããŸãªãã©ãŠã¶ã¬ã³ããªã³ã°ãšã³ãžã³ïŒBlinkïŒChrome/EdgeçšïŒãGeckoïŒFirefoxçšïŒãWebKitïŒSafariçšïŒïŒã¯ãCSS Gridã®å®è£ ãšæé©åã«éããããå ŽåããããŸããCSS仿§ã¯äžè²«æ§ãç®æããŠããŸãããããã©ãŒãã³ã¹ã®åŸ®åŠãªéããååšããå¯èœæ§ããããŸãã
ã¡ã¢ãªãžã®åœ±é¿ïŒäž»èŠãªãã©ãŠã¶å šäœã§ããã©ãŒãã³ã¹ãéèŠãªã°ãªããã¬ã€ã¢ãŠãããã¹ãããããšã¯è¯ãç¿æ £ã§ãããããšã³ãžã³ã§éåžžã«æé©åãããŠãããã®ããå¥ã®ãšã³ãžã³ã§ã¯ãããã«æé©åãããŠããªãå¯èœæ§ããããŸãããããã®éããçè§£ããããšã¯ãç¹å®ã®ãã©ãŠã¶ãããæ¯é çã§ããç¹å®ã®å°åã察象ãšããŠããå Žåãç¹ã«æçã§ããå¯èœæ§ããããŸãã
ã°ããŒãã«ãªäŸïŒããŸããŸãªãŠãŒã¶ãŒåžå Žå
šäœã§ãªã¢ã«ã¿ã€ã ã§ããã©ãŒãã³ã¹ãå¿
èŠãªéèååŒãã©ãããã©ãŒã ãéçºè
ã¯ããã©ãŠã¶éçºè
ããŒã«ã®ããã©ãŒãã³ã¹ã¿ããéããŠãç¹å®ã®è€éãªã°ãªããæ§æãSafariã§èããé
ãããšãçºèŠããå ŽåããããŸãããã®æŽå¯ã«ãããéçºè
ã¯ãã®ç¹å®ã®ã·ããªãªã®ãã©ãã¯ãµã€ãžã³ã°ãåè©äŸ¡ããããããããã·ã³ãã«ãªrepeat()ãã¿ãŒã³ãŸãã¯fråäœã®ããè³¢æãªäœ¿çšãæ¡çšããŠããã¹ãŠã®ãŠãŒã¶ãŒã«å¯ŸããŠäžè²«ããŠé«éãªãšã¯ã¹ããªãšã³ã¹ãä¿èšŒããããä¿ãããŸããããã¯ããã©ãŠã¶ã®éžæã«é¢ä¿ãããŸããã
çµè«ïŒå¹ççã§ããã©ãŒãã³ã¹ã®é«ãã°ãªããã¬ã€ã¢ãŠãã«åããŠ
CSS Grid Layoutã¯ãWebéçºè
ã«ãšã£ãŠç»æçãªãã¯ãããžãŒã§ãããããŒãžæ§é ã«å¯Ÿããæ¯é¡ã®ãªãå¶åŸ¡ãæäŸããŸããããããå倧ãªåã«ã¯å¹ççãªå®è£
ã®è²¬ä»»ã䌎ããŸããfråäœã®åããmin-contentããã³max-contentã®ã³ã³ãã³ãèªèãŸã§ããã©ãã¯ãµã€ãžã³ã°ã®ãã¥ã¢ã³ã¹ãçè§£ããããšã«ãããéçºè
ã¯èŠèŠçã«èŠäºã§ããã ãã§ãªããéåžžã«ããã©ãŒãã³ã¹ã®é«ãã¬ã€ã¢ãŠããäœæã§ããŸãã
CSS Gridãã©ãã¯ãµã€ãžã³ã°ãæé©åããããã®äž»ãªãã€ã¯ã¢ãŠãã¯æ¬¡ã®ãšããã§ãã
- ã·ã³ãã«ããåªå ããã°ãªããå®çŸ©ã®äžèŠãªè€éããé¿ããããšã
- å ç¢ã§å¹ççãªã¬ã¹ãã³ã·ãã¬ã€ã¢ãŠãã®ããã«ã`repeat()`颿°ãš`minmax()`ãæŽ»çšããããšã
- ã³ã³ãã³ãèªèåãµã€ãžã³ã°ïŒ`min-content`ã`max-content`ã`auto`ïŒãæŠç¥çã«äœ¿çšãããããã®æœåšçãªèšç®ã³ã¹ããçè§£ããããšã
- ã¹ã ãŒãºã§å¹ççãªåèšç®ã®ããã«ãã¡ãã£ã¢ã¯ãšãªã®ãã¬ãŒã¯ãã€ã³ããšCSSã«ãŒã«ãæé©åããããšã
- åžžã«ãããã¡ã€ã«ãšãã¹ããè¡ãããã©ãŠã¶éçºè ããŒã«ã䜿çšããŠã¬ã€ã¢ãŠãã®ããã©ãŒãã³ã¹ããã«ããã¯ãç¹å®ãã察åŠããããšã
ãããã®ååãæ¡çšããããšã«ãããCSS Gridã®å®è£ ãWebã¢ããªã±ãŒã·ã§ã³å šäœã®ããã©ãŒãã³ã¹ã«ç©æ¥µçã«è²¢ç®ããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«é«éã§ã¬ã¹ãã³ã·ãã§ã¡ã¢ãªå¹çã®é«ããšã¯ã¹ããªãšã³ã¹ãæäŸããããšãä¿èšŒã§ããŸããããã©ãŒãã³ã¹æé©åã®ç¶ç¶çãªè¿œæ±ã¯ãåãªãæè¡çãªèŠä»¶ã§ã¯ãªãã仿¥ã®ç«¶äºã®æ¿ããããžã¿ã«äžçã«ããããŠãŒã¶ãŒæºè¶³ãžã®ã³ãããã¡ã³ãã§ãã